package br.com.scpe.managedbean;

import java.io.IOException;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.PostConstruct;

import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;

import br.com.scpe.ejb.entity.Funcionario;
import br.com.scpe.ejb.entity.Projeto;
import br.com.scpe.ejb.sessionBean.ProjetoSessionBean;
import br.com.scpe.relatorio.ConstantesRelatorio;
import br.com.scpe.relatorio.GenericBean;
import br.com.scpe.relatorio.GeraRelatorioBean;


@ManagedBean
@RequestScoped
public class DetalhaFuncionarioManagedBean extends BaseManagedBean {
	
	@EJB
	private ProjetoSessionBean projetoSessionBean;

	private Funcionario funcionario;
	
	private List<Projeto> listaDeProjetos;
	
	public DetalhaFuncionarioManagedBean() {
		super();		
	}

	@PostConstruct
	public void init() {
		Map<String, Object> requestMap = FacesContext.getCurrentInstance().getExternalContext().getRequestMap();
		funcionario = (Funcionario) requestMap.get("funcionarioSelecionado");
		try {
			listaDeProjetos = projetoSessionBean.consultarProjetosFuncionariosProjeto(funcionario.getIdFuncionario());
		} catch (Exception e) {
		}
		
	}
	
	@SuppressWarnings({ "unchecked", "rawtypes" })
	public void salvarEmPDF() throws IOException {
		
		HashMap params = new HashMap();
		
		params.putAll(GenericBean.listarAtributosValores(getFuncionario(), params));
		
		String reportUrlReal = ConstantesRelatorio.RELATORIO_SINTETICO;
		
		GeraRelatorioBean.gerarPDF(null, params, reportUrlReal);

	}
	
/*========================== GETTERS AND SETTERS ================================*/	
	
	public Funcionario getFuncionario() {
		return funcionario;
	}
	
	public void setFuncionario(Funcionario funcionario) {
		this.funcionario = funcionario;
	}
	
	public List<Projeto> getListaDeProjetos() {
		return listaDeProjetos;
	}

	public void setListaDeProjetos(List<Projeto> listaDeProjetos) {
		this.listaDeProjetos = listaDeProjetos;
	}
	
}
